Tableau Desktopで緯度・経度情報を扱ったグラフを作成してみる
以前、Tableau Desktopの機能紹介エントリで『こういうグラフが利用出来る』というものを紹介させて頂きました。
Tableau Desktop – “Show Me”(表示形式の選択・自動判別)機能で扱える図やグラフを一挙紹介!! | Developers.IO
このエントリでは、数ある中の表示形式(Show Me!)の機能、『マップ』で扱う事になる『緯度・経度情報』について触れてみたいと思います。
目次
とりあえずマッピングしてみよう
まずは以下CSVファイルを手作りします(エンコード:utf-8で!)。緯度経度情報は住所からWebサービスを使って割り出したものをここでは利用します。
cm-address.csv
名前,緯度,経度,住所 クラスメソッド株式会社,35.697242,139.774753,東京都千代田区神田佐久間町1丁目11番地産報佐久間ビル8階 書泉ブックタワー,35.697345,139.775155,東京都千代田区神田佐久間町1丁目11−1 和泉橋ビル スターバックス秋葉原駅前店,35.697772,139.77338,東京都 千代田区 神田佐久間町1-6-5
1.Tableau Desktopを起動し、データソース[テキストファイル]を選択。
2.上記作成したファイルを選択します。
3.接続時の設定を諸々聞かれますが、そのまま[OK]で。
4.緯度経度情報はそのままでは用途として条件を満たしていない為、一手間加えます。項目『緯度』を右クリックし、『地理的役割』→『緯度』を選択。するとアイコンが地球儀マークに変わります。同様に経度も同じ作業を行ってください。
5.緯度及び経度を『メジャー』から『ディメンション』に、更に緯度を『行』へ、経度を『列』へドラッグアンドドロップで移動。すると、何やら点が3つ表示されて来ました。
6.縮小して行くと『×』の印が。
7.更に縮小。すると地図が出て来ました。用意したデータ内容の距離が近く、いきなり拡大表示されてしまった&対応する地図が無かったようです。
地図サービスとと連動させてみよう
情報を緯度経度を元にマッピングしたまでは良いですが、これではあまり有用とは言えないですね。ここで更にもう一手間加えてみましょう。
6.メニュー[マップ]→[バックグラウンド マップ]から[WMSサーバ]を選択。
7.[追加]を選択。
8.WMS Server接続の追加でURL『http://neogis.net/cgi-bin/kiban25000?』を設定し[OK]押下。
9.閉じます。
10.再度メニューから上記で設定した項目を選択します。すると...
11.地図が表示されて良い感じでポイントが見えて来ました!!
12.情報として表示させたい項目として『名前』と『住所』を[マーク]の[詳細]にドラッグ&ドロップ。そしてポイントにカーソルを合わせてみると、ポイントにちなんだ情報が表示されました!
当エントリのキーワード
ジオコーディング(geocoding)
Tableauでは、緯度・経度の情報があれば、それら情報を使ってマッピングを行い、Tableauが連携している地図と連動させて表示する事が可能です。参照するデータに緯度経度情報が含まれていればそれらを用いますし、仮に無かったとしても『カスタムジオコーディング』という機能を用いてTableau側に緯度経度と連動させるようにすれば同等の機能を実現出来るようになります。...とここで『ジオコーディング』なるキーワードが出て来ました。これは一体何でしょう?
『ジオコーディング』とは以下のような定義となっているようです(Wikipedia参照)。位置情報を用いる際にはまずは無くてはならない情報であり技術と言えます。
各種情報に対して、関連する地理座標(典型的には緯度・経度)を付加すること、およびこれに関する技術やソフトウェアをいう。付加された地理座標のことをジオコードと称する。
WebサービスとしてはGoogle Geocoding APIを始め様々なところでサービスが展開されています。
- Google Geocoding API - Google Maps API ウェブ サービス — Google Developers
- YOLP(地図):Yahoo!ジオコーダAPI - Yahoo!デベロッパーネットワーク
- GoogleMapsAPI以外のジオコーディングサービスまとめ|katyos開発室
WMS(Web Mapping Service)
上記手順では、地図を出すためにURLを指定しましたが、これは下記サイトのサービスを利用させて頂いた形となっています。ここで出てくるのが『WMS』というキーワード。
WMSとはWeb Map Serviceの略で標準プロトコルの一種なのだそうです。Wikipedia等でも世界・日本で利用可能なWMSサーバが幾つか紹介されていますが、割とどれも活きていない状態...(´・ω・`) そんな中、上記のサイトでは生存している&無料で使える(!)という事で利用させて頂いた次第です。ありがとうございます!
まとめ:課題や今後の展望
という訳で簡単なサンプルではありますが、緯度経度を元にしたマッピンググラフ作成を試してみました!ざっくりサンプルなのでそこまで手間暇は掛かりませんでしたが、本格利用するとなると以下の様なポイントが重要となって来そうです。
緯度経度情報をどうやって作成・付加していくか
アプリや何らかの仕組みで緯度経度情報を作成・付与したデータを生成出来るのであれば問題無いかも知れないですが、住所情報やIPアドレス等から緯度経度を割り出したい、しかも大量に!となった場合、いちいち手作業でやっていたら終わるものも終わりません。API等を使うという手段もありますが、この手の最大手であろうWebサービス『Google Geocodning API』の場合は『使っても良いけど、Google Maps内でね』という縛りが存在します。
Tableau自体でも郵便番号や都道府県の情報を元に自動的に地理的マッピングを行う機能を有しておりますが、それこそ都道府県・市区町村レベル以下の町丁目、番地などの詳細情報を扱いたい場合は正確な緯度経度が必要となります。無料・手作業レベルでこの辺り対応するのはさすがに無理ゲーな気がするので、ここはやはり専門のサービス(有償)と連携していくのがセオリーとなるのでしょうか。
WMSサーバの利用・準備について
2つ目のキーワードとしてあげたWMSも、分析内容を見栄えの良い・クオリティ高いものにするためには必須の要素となってきます。先述のWMSサーバも無料ではありますが拡大した際の画像は若干荒目でしたし、想定する描画情報やクオリティがより高いものを望まれる場合はここもやはり有償サービスを用いる等の選択肢も出てくるのではないでしょうか。
また、以下サイトではWMSサーバを『自作・構築』しています。
また、GoogleMapsをTableauと連携させる(!)という手法もあるようです。これはかなり面白げですねぇ。(* °∀°)
- Linking to Google Maps | Tableau Software
- How to Embed a Google Map in Tableau | DataRemixed
- How add google map as WMS Server? | Tableau Support Community
- Urban Mapping - Map provider for Tableau | Tableau Support Community
PostgreSQLでは拡張機能としてPostGiSなるものも用意されているようです。
- PostGIS — Spatial and Geographic Objects for PostgreSQL
- PostGIS 2.0.0マニュアル日本語訳
- PostGISとは? — Let's Postgres
- 地理空間とOSGeoとPostGISとを簡単に紹介してみます
AWSのRDS(PostgreSQL)でも、PostGISに対応している模様。
- Amazon RDS for PostgreSQL(ベータ版)| アマゾン ウェブ サービス(AWS 日本語)
- 『PostGIS は、PostgreSQL オブジェクトリレーショナルデータベース用の地理空間データベース拡張です。地理オブジェクトがサポートされているので、SQL で場所のクエリを実行できるようになります。』
- Using PostGIS on Amazon RDS with OpenGeo Suite - Boundless
- PostgreSQL Deep Dive: RDS for PostgreSQLの中を覗いてみた(追記あり)
ジオコーディング・WMS辺りに関しては今回ほぼ初見で色々触れてみた訳ですが、この辺りの情報や環境をスムーズ且つ有効に活用出来るとなると色々面白い事が出来そうです。まだ足を踏み入れたばかりの状況ですので、今後も色々と掘り下げて行きたいと思います。